import { ref } from "vue";
// 导入提示方法
import { message } from "ant-design-vue";
// 导入时间处理库
import moment from "moment";
// 导入查询论坛列表接口
import { queryForumList } from "@/api/forumAPI";

export const useQueryForum = (data, current, getForumData) => {
  // 用户名输入框双向绑定
  const username = ref("");
  // 论坛标题输入框双向绑定
  const forumTitle = ref("");
  // 查询后的列表
  const queryData = ref([]);

  // 定义time
  var timer = null;

  // 点击查询论坛列表
  const handleQueryForum = () => {
    // 如果用户名和标题为空就return
    if (username.value === "" && forumTitle.value === "") return;

    // 参数
    const query = {
      username: username.value,
      title: forumTitle.value,
    };

    // 如果有time就清除
    timer && clearTimeout(timer);

    // 发送请求查询论坛列表
    timer = setTimeout(() => {
      queryForumList(query)
        .then((res) => {
          if (res.status === 200) {
            message.success("查询成功");
            // 遍历修改日期格式
            res.data.forEach((item) => {
              item.createtime = moment(item.createtime).format(
                "YYYY-MM-DD HH:mm:ss"
              );
            });
          }
          if (res.status === 205) {
            message.error("没有数据");
          }
          // 当前页码改为1
          current.value = 1;
          // 存储查询后的论坛列表
          queryData.value = res.data;
          data.value = res.data;
        })
        .catch((error) => {
          throw new Error(error);
        });
    }, 2000);
  };

  // 重置
  const handleResetList = () => {
    // 如果用户名和标题为空就return
    if (username.value === "" && forumTitle.value === "") return;
    username.value = "";
    forumTitle.value = "";
    getForumData();
    queryData.value = [];
    current.value = 1;
    // 提示重置成功
    message.success("重置成功");
  };

  return {
    username,
    forumTitle,
    queryData,
    handleQueryForum,
    handleResetList,
  };
};
